﻿using Acaweb.Data.Contracts;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;
using Acaweb.Componentes.Contracts;
using System.Collections.Generic;
using System.Linq;

namespace Acaweb.Componentes
{
    public class ValoresFormulariosSernvice : BaseService, IValoresFormulariosService
    {
        private IValoresFormulariosDao _ValoresFormulariosDao;

        public IValoresFormulariosDao ValoresFormulariosDao
        {
            get { return _ValoresFormulariosDao; }
            set { _ValoresFormulariosDao = value; }
        }

        public IList<ValoresFormularios> GetByInteresado(int IdInteresado)
        {
            return ValoresFormulariosDao.GetByInteresado(IdInteresado);
        }

        public void Update(ValoresFormularios ValorFormulario)
        {
            ValoresFormulariosDao.Update(ValorFormulario);
        }

        public void Insert(ValoresFormularios ValorFormulario)
        {
            ValoresFormulariosDao.Save(ValorFormulario);
        }

        public IList<Suscritos> GetByFormulario(int IdFormulario)
        {
            List<Suscritos> Resultado = new List<Suscritos>();
            List<ValoresFormularios> Valores = ValoresFormulariosDao.GetAll().Where(t => t.CampoFormulario.TipoFormulario == IdFormulario).ToList();

            Resultado = Valores.Select(t => t.Suscrito).Distinct().ToList();
            Valores.ForEach(t => t.Suscrito = null);
            Resultado.ForEach(t => t.Respuestas = Valores.FindAll(r => r.IdSuscrito == t.IdSuscrito));

            return Resultado;
        }
    }
}